package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.IdiomaFacade;
import sv.com.bolsaTrabajo.model.entities.Idioma;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class IdiomaMB extends ManejadorAccion {

    @EJB
    private IdiomaFacade idiomaFacade;
    private Idioma idioma;
    private List<Idioma> idiomas;

    /**
     * Constructor
     */
    public IdiomaMB() {
        limpiarIdioma();
        idioma = new Idioma();
    }

    public void limpiarIdioma() {
        setIdioma(new Idioma());
    }

    public List<Idioma> getIdiomas() {
        idiomas = idiomaFacade.obtenerTodos();
        return idiomas;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Idiomas");
            getIdioma().setFechaMod(new Date());

            if (idioma.getIdIdioma()== null) {
                idiomaFacade.crear(idioma);
                lanzarMensajeInformacion("Exito", "Idioma guardada correctamente");
            } else {
                idiomaFacade.modificar(idioma);
                lanzarMensajeInformacion("Exito", "Idioma modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmIdioma");
            RequestContext.getCurrentInstance().execute("WVDialogIdioma.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Idioma ", e);
        }
    }

    public void modificarEntidad(Idioma modIdioma) {
        try {
            this.idioma = modIdioma;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Idioma", e);
        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    
    public IdiomaFacade getIdiomaFacade() {
        return idiomaFacade;
    }

    public void setIdiomaFacade(IdiomaFacade idiomaFacade) {
        this.idiomaFacade = idiomaFacade;
    }

    public Idioma getIdioma() {
        return idioma;
    }

    public void setIdioma(Idioma idioma) {
        this.idioma = idioma;
    }
 }
